package cl.tinet.ejemplos;

import java.util.List;

import javax.persistence.EntityManager;
import javax.persistence.Query;

public class UsuarioDao {

	private EntityManager em;

	public UsuarioDao(EntityManager em) {
		super();
		this.em = em;
	}

	// metodos crud
	public List<Usuario> mostrarTodo() {
		Query q = em.createQuery("SELECT u FROM Usuario u");
		List<Usuario> lista = q.getResultList();
		return lista;

	}

	public Usuario mostrarUsuario(Usuario usuario) {// este es mi buscar
		Query q = em
				.createQuery("SELECT u FROM Usuario u WHERE nombre_user=:hola");
		q.setParameter("hola", usuario.getNombreUser());
		Usuario usuar = (Usuario) q.getSingleResult();
		return usuar;
	}

	public void insertar(Usuario usuario) {
		em.persist(usuario);

	}

	public void editar(Usuario usuario) {
		UsuarioDao userDao = new UsuarioDao(em);
		Usuario userantiguo = usuario;
		Usuario usuarioNuevo = userDao.mostrarUsuario(userantiguo);// aqui debe
																	// ir el
																	// buscar

		usuarioNuevo.setNombreUser(userantiguo.getNombreUser());
		usuarioNuevo.setNombre(userantiguo.getNombre());
		usuarioNuevo.setApellidoPaterno(userantiguo.getApellidoPaterno());
		usuarioNuevo.setApellidoMaterno(userantiguo.getApellidoMaterno());
		usuarioNuevo.setPass(userantiguo.getPass());
		em.persist(usuarioNuevo);

	}

	public void eliminar(Usuario usuario) {
		UsuarioDao userDao = new UsuarioDao(em);
		Usuario user = userDao.mostrarUsuario(usuario);
		em.remove(user);
	}

}
